<html>
   <head>
      <script src="../../../Grid/GridE.js"> </script>
      <style>
         /* Examples shared styles */
         .ExampleHeader,.ExampleName,.ExampleShort,.ExampleDesc,.ExampleErr { max-height:999999px; }
         .ExampleHeader { font:normal 12px Arial; color:blue; }
         .ExampleHeader b { color:#800; }
         .ExampleHeader i { font-style:normal; font-weight:bold; color:black; }
         .ExampleHeader u { font-weight:bold; text-decoration:none; padding:0px 2px 0px 2px; color:#0B0; }
         .ExampleName { font:bold 30px Arial; padding:5px 0px 5px 0px; }
         .ExampleShort { font:italic 15px Arial; margin-bottom:10px; padding-top:5px; }
         .ExampleDesc { font:14px/17px Arial; margin:0px 5px 10px 5px; padding:5px; border:1px solid #AAA; }
         .ExampleErr { font:14px/30px Arial; margin:50px auto 10px auto; padding:5px; border:1px solid black; color:red; width:800px; text-align:center; display:none; }
         .ExampleBorder { margin:0px 5px 0px 5px; clear:both; zoom:1; }
         .ExampleDesc ul { padding:0px 0px 0px 15px; margin:10px 0px 0px 0px; }
         .ExampleDesc li { padding-bottom:8px; line-height:18px; }
         .ExampleDesc h4 { font:bold 15px/20px Arial; margin:0px; padding:0px 6px 0px 6px; background:#87DAE5; border:1px solid #888; color:black; display:inline; }
         .ExampleDesc u { font-size:11px; text-decoration:none; }
         .ExampleDesc .Link { text-decoration:underline; color:blue; cursor:pointer; }
         .ExampleMain { height:300px; }
         @media (max-height:800px) { 
            .ExampleDesc { font-size:13px; line-height:15px; margin:0px 5px 5px 5px; padding:3px 5px; } 
            .ExampleDesc br { display:none; }
            .ExampleName { font:20px Arial; padding:0px; }
            .ExampleShort { font-size:13px; }
            }
      </style>
   </head>
   <body>
   <center class="ExampleHeader"><script>document.write(location.href.replace(/(.*)(\/Examples\/|\/ExamplesGantt\/)([^\/]+)\/([^\/]+)\/([^\/]+)$/,"$2<b>$3</b>/<i>$4</i>/$5").replace(/([^<]|^)(\/|\.)/g,"$1<u>$2</u>"));</script></center>
      <center class="ExampleName">Sharing and synchronizing data among visitors by DLL</center>
      <center class="ExampleShort">Using <b>TreeGrid server library</b> and <b>checking for updates</b> feature</center>
      <div class="ExampleErr">
         <script> if(location.protocol=="file:") document.write("<style>.ExampleDesc, .ExampleBorder {display:none;} .ExampleErr { display:block; } </style>"); </script>
         Do <b>not</b> run this file locally!<br />Run it from your local or remote web http server where is installed JAVA JRE.<br>
      </div>
      <div class="ExampleDesc">
         <i>Source files:</i> <h4>FileSharing.html</h4> (this html page), <a href="FileDef.xml" target="_blank"><h4>FileDef.xml</h4></a> (static XML layout), 
         <a href="FileSharing.jsp" target="_blank"><h4>FileSharing.jsp</h4></a> (server script generates and processes XML data; uses the TreeGrid.dll/so), 
         <a href="FileData.xml" target="_blank"><h4>FileData.xml</h4></a> (source XML data)<br />
         <h4>TreeGrid.jar</h4> (support code to use TreeGrid server library),
         <h4>TreeGrid.dll</h4> or <h4>TreeGrid.so</h4> (library located in package root directory <b>/Server/TreeGrid32/</b> or <b>/Server/TreeGrid64/</b> depending on server system, used in <b>TreeGrid.jar</b>),
         <h4>tmp/</h4> directory can be used for temporary data to free JAVA memory.
      </div>
      <div class="ExampleDesc">
         <h4 style="background:#FCC;">To use the TreeGrid server side library you have to copy file <b style="color:red;">TreeGrid.jar</b> to your JRE shared lib directory and <b style="color:red;">restart</b> your http server</h4><br />
         The <h4>TreeGrid.jar</h4> is support code for using <a href="../../../Doc/DLL.htm"><h4>TreeGrid server side DLL / SO</h4></a> and is located in TreeGrid distribution in <b>/Server/Jsp/</b> directory.
         <u>The shared lib directory is usually <b><i>jre_install_path</i>/lib/ext</b> and also e.g. in Tomcat is usually <b><i>tomcat_install_path</i>/shared/lib</b>.</u><br>
      </div>
      <div class="ExampleDesc">
         This example demonstrates using <a href="../../../Doc/DLL.htm"><h4>TreeGrid server side DLL / SO</h4></a> library
            for <b>server</b> side <b>paging</b>, <b>calculations</b>, <b>grouping</b>, <b>sorting</b>, <b>filtering</b> and <b>updates</b>.
         It demonstrates especially <a href="../../../Doc/DataServerChanges.htm#Synchronizing"><h4>checking for updates</h4></a> feature.<br>
         This example loads all data from the <b>FileData.xml</b> file and fills them to TreeGrid DLL and uses it for generating data and pages for client.<br />
         Uploaded changes are sent only to TreeGrid DLL, to all users, and saved to temporary xml in <b>/tmp</b> directory. <b>This example does not modify the source FileData.xml!</b><br>
         <i>This example does not use any custom JavaScript or server script code, all features are set via XML data definitions and provided by TreeGrid!</i>
      </div>
      <div class="ExampleDesc">
         This page contains two independent grids as demonstration of two independent applications.
	      Both these grid show the same XML data file. If you change data (and save changes) in one grid, 
	      the other grid will get information from server about change and let you to download changes.<br>
         You can also open this page in new window to get more grid instances <a href="FileSharing.html" target=_blank><b>open new page</b></a>.<br>
      </div>
      <div class="ExampleBorder">
         <input id='Data1_1_Session' type='hidden'>     
         <div class="ExampleMain">
            <bdo 
                 id='Data1_1'
                 Debug='problem'
              
                 Layout_Url='FileDef.xml'
                 Layout_Bonus='<Grid><Cfg SaveSession="Data1_1_Session" ChangesUpdate="257" MinTagHeight="300" Size="Small" Style="TW"/></Grid>'
              
                 Data_Url='FileSharing.jsp'
                 Data_Method='Form'
	   	        Data_Format='Internal'
                 Data_Param_Function='LoadBody'
		           Data_Param_Def='FileDef.xml'
		           Data_Param_File='FileData.xml'
		           Data_Data='Cfg'

                 Page_Url='FileSharing.jsp'
		           Page_Format='Internal'
		           Page_Method='Form'
		           Page_Param_Function='LoadPage'
		           Page_Data='Cfg'
		        
		           Upload_Url='FileSharing.jsp'
                 Upload_Method='Form'
	   	        Upload_Format='Internal'
                 Upload_Param_Function='Save'
		           Upload_Param_File='FileData.xml'
		           Upload_Data='Changes'
                 Upload_Type='Changes,FullMoved'
		        
		           Check_Url='FileSharing.jsp'
		           Check_Method='Form'
	   	        Check_Format='Internal'
                 Check_Param_Function='CheckUpdates'
		           Check_Param_File='FileData.xml'
		           Check_Data='Cfg'
                 Check_Interval='2'
              
                 ></bdo>
         </div>
      </div>

      <hr style='margin-top:5px; margin-bottom:5px;'>

      <div class="ExampleBorder">
         <input id="Data1_2_Session" type='hidden'>
         <div class="ExampleMain">
            <bdo 
                 id='Data1_2'
                 Debug='problem'
              
                 Layout_Url='FileDef.xml'
                 Layout_Bonus='<Grid><Cfg SaveSession="Data1_2_Session" ChangesUpdate="257" MinTagHeight="300" Size="Small"/></Grid>'

                 Data_Url='FileSharing.jsp'
                 Data_Method='Form'
	   	        Data_Format='Internal'
                 Data_Param_Function='LoadBody'
		           Data_Param_Def='FileDef.xml'
		           Data_Param_File='FileData.xml'
		           Data_Data='Cfg'

                 Page_Url='FileSharing.jsp'
		           Page_Format='Internal'
		           Page_Method='Form'
		           Page_Param_Function='LoadPage'
		           Page_Data='Cfg'
		        
		           Upload_Url='FileSharing.jsp'
                 Upload_Method='Form'
	   	        Upload_Format='Internal'
                 Upload_Param_Function='Save'
		           Upload_Param_File='FileData.xml'
		           Upload_Data='Changes'
                 Upload_Type='Changes,FullMoved'
		        
		           Check_Url='FileSharing.jsp'
		           Check_Method='Form'
	   	        Check_Format='Internal'
                 Check_Param_Function='CheckUpdates'
		           Check_Param_File='FileData.xml'
		           Check_Data='Cfg'
                 Check_Interval='2'
                 ></bdo>
         </div>
      </div>

      <!-- Google Analytics code run once for trial -->
      <script>
         var TGTrial = document.cookie.match(/TGTrialJSP\s*=\s*(\d+)/), TGIndex = 32768;
         if(!TGTrial||!(TGTrial[1]&TGIndex)) setTimeout(function(){
            var n = "RunTrialJSPFileSharing", d = (new Date((new Date).getTime()+31536000000)).toUTCString(); document.cookie = "TGTrialJSP="+((TGTrial?TGTrial[1]:0)|TGIndex)+";expires="+d;
            var u = document.cookie.match(/TGTrialUsed\s*=\s*(\d+)/); u = u ? u[1]-0+1 : 1; if(u<=11) document.cookie = "TGTrialUsed="+u+";path=/;expires="+d;
            var s = "<div style='width:0px;height:0px;overflow:hidden;'><iframe src='http"+(document.location.protocol=="https"?"s":"")+"://www.treegrid.com/Stat/GA.html?productName="
                 +(u==1||u==3||u==5||u==10?"UsedTrial"+u:n)+"' onload='var T=this;setTimeout(function(){document.body.removeChild(T.parentNode.parentNode);},1000);'/></div>";
            var F = document.createElement("div"); F.innerHTML = s; document.body.appendChild(F);
            },100);
      </script>

   </body>
</html>
